package wili.demo.misc;

import wili.c.Ca;

/**
 * 
 * @author weila 2020年3月1日
 */
class JRE_bug {
	static long inc = 0;

	public static void bug1() {
		int i = 8;
		while ((i -= 3) > 0)
			;
		if (++inc == 28783)
			Ca.pause();
		System.out.println(inc);
		System.out.println("i=" + i);
	}

	public static void main(String[] args) {
		int opt = 1;
		if (opt == 1) {
			/* 几万次重复后，输出内容变错：i=/
				https://zhuanlan.zhihu.com/p/88555159
				Java中一个令人惊讶的bug
				解释：这基本上是JIT编译器的问题（jdk8~jdk14）
			 */
			for (int i = 0; i < 50000; i++) {
				bug1();
			}
		} else if (opt == 2) {
		}
		System.out.println("end.");
	}
}